From: Jasper St. Pierre Date: Wed, 4 Apr 2012 20:13:07 +0000 (-0400) Subject: st-theme-context: Make icon theme changes a bit more efficient X-Git-Tag: archive/raspbian/50.5-1+rpi1~1^2~1013^2^2~6695 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/%22/%22http:/www.example.com/cgi/%22?a=commitdiff_plain;h=00091a2acb40a3237b9abf90fbc42ffd010c7780;p=gnome-shell.git st-theme-context: Make icon theme changes a bit more efficient There's no need to destroy and recreate the root node for an icon theme change. Just emit the CHANGED signal. https://bugzilla.gnome.org/show_bug.cgi?id=673512 --- diff --git a/src/st/st-theme-context.c b/src/st/st-theme-context.c index 6fe5fb72f..0e96cdba5 100644 --- a/src/st/st-theme-context.c +++ b/src/st/st-theme-context.c @@ -129,13 +129,19 @@ on_stage_destroy (ClutterStage *stage) g_object_unref (context); } +static void +emit_changed (StThemeContext *context) +{ + g_signal_emit (context, signals[CHANGED], 0); +} + static void st_theme_context_changed (StThemeContext *context) { StThemeNode *old_root = context->root_node; context->root_node = NULL; - g_signal_emit (context, signals[CHANGED], 0); + emit_changed (context); if (old_root) g_object_unref (old_root); @@ -148,8 +154,9 @@ on_icon_theme_changed (StTextureCache *cache, /* Note that an icon theme change isn't really a change of the StThemeContext; * the style information has changed. But since the style factors into the * icon_name => icon lookup, faking a theme context change is a good way - * to force users such as StIcon to look up icons again */ - st_theme_context_changed (context); + * to force users such as StIcon to look up icons again. Don't bother recreating + * the root node, though. */ + emit_changed (context); } /**